﻿//-----------------------------------------------------------------------
// <copyright file="ColorRGB.cs" company="cx studio">
//     Copyright (c) cx studio. All rights reserved.
// </copyright>
// <author>Xi Chen</author>
//-----------------------------------------------------------------------
namespace CentralFoveaLib.ColorProcess
{
    /// <summary>
    /// The color wrapper.
    /// </summary>
    public class ColorRGB
    {
        /// <summary>
        /// Initializes a new instance of the <see cref="ColorRGB"/> class. The white color.
        /// </summary>
        public ColorRGB()
            : this(255, 255, 255, 255)
        {
        }

        /// <summary>
        /// Initializes a new instance of the <see cref="ColorRGB"/> class. Alpha is 255.
        /// </summary>
        /// <param name="r"> The color of red</param>
        /// <param name="g"> The color of green.</param>
        /// <param name="b"> The color of blue.</param>
        public ColorRGB(byte r, byte g, byte b)
            : this(255, r, g, b)
        {
        }

        /// <summary>
        /// Initializes a new instance of the <see cref="ColorRGB"/> class.  Full constructor color.
        /// </summary>
        /// <param name="a"> The color of alpha.</param>
        /// <param name="r"> The color of red.</param>
        /// <param name="g"> The color of green.</param>
        /// <param name="b"> The color of blue.</param>
        public ColorRGB(byte a, byte r, byte g, byte b)
        {
            this.A = a;
            this.R = r;
            this.G = g;
            this.B = b;
        }

        /// <summary>
        ///  Gets or sets red.
        /// </summary>
        public byte R
        {
            get;
            set;
        }

        /// <summary>
        ///  Gets or sets green.
        /// </summary>
        public byte G
        {
            get;
            set;
        }

        /// <summary>
        ///  Gets or sets blue.
        /// </summary>
        public byte B
        {
            get;
            set;
        }

        /// <summary>
        /// Gets or sets alpha.
        /// </summary>
        public byte A
        {
            get;
            set;
        }
    }
}
